package com.heima.apis.article;

import com.heima.model.article.dto.ArticleDto;
import com.heima.model.article.pojo.ApAuthor;
import com.heima.model.common.dto.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @author Ronaldo
 * @date 2021/8/1
 */
@FeignClient("leadnews-article")
public interface IArticleClient {

    /**
     *根据用户id查询作者信息
     * @param userId
     * @return
     */
    @GetMapping("/api/v1/author/findByUserId/{userId}")
    public ApAuthor findByUserId(@PathVariable("userId") Integer userId);

    /**
     * 保存作者
     * @param apAuthor
     * @return
     */
    @PostMapping("/api/v1/author/save")
    public ResponseResult save(@RequestBody ApAuthor apAuthor);

    /**
     * 根据自媒体用户id查询作者信息
     * @param id 自媒体用户id
     * @return ApAuthor
     */
    @GetMapping("/api/v1/author/findByWmUserId/{wmUserId}")
    public ApAuthor findAuthorByWmUserId(@PathVariable("wmUserId") Integer id);

    /**
     * 保存或更新APP文章相关表信息
     * @param articleDto 文章
     * @return ResponseResult
     */
    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto articleDto);

    /**
     * 根据作者id获取作者
     * @param id 作者id
     * @return apAuthor
     */
    @GetMapping("/api/v1/author/one/{id}")
    public ApAuthor getApAuthorById(@PathVariable("id") Integer id);

}
